آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

کار با دیالوگ و دستور شرطی  if

!M!KT  10 سال پیش  9 سال پیش
+4 0

یه دیالوگ سفارشی درست کردم مطابق شکل بالا که اون edit Text رو مقدارش رو از نوع عددی قرار دادم.

میخوام بگم که اگه مقدار عددی که کاربر قراره تو edit text وارد کنه و بعد دکمه yes  رو بزنه کمتر از مثلا 1000 بود بهش یه Toast نشون بدم که "عدد بزرگتری وارد کن"  و یه فرصت دیگه بهش بدم. اگه اون عدد وارد شده بزرگتر بود این بار در قالب یه Toast  بهش بگم مثلا  "Welocome to app" و پنجره dialog بسته شه. و تا زمانی که این عدد کوچکتر از 1000 بود همین طور بهش فرصت بده.

اگه روی دکمه No کلیک شد dialog بسته شه و دوباره باز شه. (همین)

اینم اون تکه از کد که توش ایراد دارم : وقتی بعد از وارد کردن عدد   yes رو میزنم کرشششششششش میکنه.

 public class ActivityFirst extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);

Button btnCh = (Button) findViewById(R.id.btnCh);

final Dialog dialog = new Dialog(ActivityFirst.this);
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.setContentView(R.layout.dialog);
dialog.setCancelable(false);
btnCh.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
dialog.show();
}
});

Button btnYes = (Button) dialog.findViewById(R.id.btnYes);
Button btnNo = (Button) dialog.findViewById(R.id.btnNo);

*********************************************** $$$$پیداش کردم $$$$$******************************************
// رو نذاشته بودم dialo. قبلش gEditText من هنگام معرفی

final EditText edtNumber = (EditText) dialog.findViewById(R.id.edtNumber);

************************************************************************************************************

btnYes.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

int number = Integer.parseInt(edtNumber.getText().toString());

if (number < 1000) {
Toast.makeText(ActivityFirst.this, "ERROR !!!", Toast.LENGTH_SHORT).show();

} else {
Toast.makeText(ActivityFirst.this, "OK . Welcome to APP", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}

}
});
btnNo.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

Toast.makeText(ActivityFirst.this, ". . .", Toast.LENGTH_LONG).show();
dialog.dismiss();
dialog.show();
}

});
+4 0
$ (10 سال پیش)
0 0
سلام میدونم دیر شده ! ولی اگر بخواین پاسخ رو دوستان راهنمای کنن از ارور یک تصویر بذارین .. راحت تر خواهد بود (9 سال پیش)
0 0
وقتی مقدار رو از نوع String میگیرم هیچ مشکلی نیس و برنامه هم کرش نمیکنه و ادامه میده. """"مشکل اینه که وقتی مقدار رو از نوع long (عددی) میخوام بگیرم کرش میکنه. """". ... ضمنا با هم مشخص کردم. تصویر از چی بزارم . تصوریش کرش کردنه و جایی هم که اشکال داره رو که مشخص کردم. (9 سال پیش)
0 0
مشکل پیدا شد.:) وقتی edit Text رو از xml توی جاوا فرا خوانی کردم چون editText توی فایل dialog.xml بود باید قبل از findViewById یه .dialog قرار میدادم اما خب از سر بی توجهی اینو قرار ندادم و برنامه بدلیل اینکه چنین editText ی توی activity_first.xml نبود کرش میکرد. ( واقعا وقتمو خیلی گرفته بود. ) (9 سال پیش)
 برای این سوال 2 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
!M!KT  9 سال پیش
0 0

 پاسخ صحیح

یه سوال دیگه : می خوام  وقتی کاربر هیچ مقداری توی edit text  وارد نکرد (اگه خالی بود ) و بعد yes رو زد یه Toast بهش نشون بدم. در صورتیکه برنامه منجر به کرش میشه.

_ همونطور که تو کد می بینین edtNumber == null قرار دادم اما بازم کرش میکنه

  btnYes.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

int number = Integer.parseInt(edtNumber.getText().toString());

if (number < 1000) {
Toast.makeText(ActivityFirst.this, "ERROR !!!", Toast.LENGTH_SHORT).show();
======================================================================================

} else if (edtNumber == null) {
Toast.makeText(ActivityFirst.this, " یه پیام خطا ", Toast.LENGTH_SHORT).show();

=======================================================================================
} else {
Toast.makeText(ActivityFirst.this, "OK . Welcome to APP", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}

}
});
0 0
ضمنا مورد توجه دوستان : وقتی مقدار خروجی از نوع string باشه این مشکل پیش نمیاد. اما واسه مقدار عددی یه خورده پیچیده اس . (9 سال پیش)
0 0
. . . . . . . (9 سال پیش)
0 0
(9 سال پیش)
0 0
$$$$$$$$$$$$$$$$$$$$$$$$$ (9 سال پیش)
پاسخ به سوال 
namdar79  9 سال پیش
0 0

تو شرط باید بگید

 if(edtNumber.getText().toString().length() == 0 )

این کد تعداد کاراکتر های اون ادیت تکست رو بررسی می کنه و درصورتی که تعدادشود برابر با صفر باشه دستور شرط انجام میشه

0 0
نه دوست عزیز همه رو چک کردم بازم کرش میکنه. :( (9 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .